#ifndef DODO_LIDAR_CONSTANTS
#define DODO_LIDAR_CONSTANTS

//------------Options -- Edit here if any thing changes... --------

//about the operating system...
	const string SLASH="\\";            //for windows, set it "\\" (take care: 2 '\'s); for linux , set it "/"
	const string DIRorLS= "dir";		//for windows, set it "dir"; for linux, "ls" of course.

//about where the file: "setting.ini" is. (also for the overlap, afterpulse and atmos profile files...
	const string WHERE_IS_INI = "D:\\Working\\VisualStudio_WorkSpace\\DodoNewLidar2\\Ver080318\\";  //never forget to end it with a "/"(Linux) or "\\"(Windows);

//about the lidar
	const int RESO_NUM=2;  //different resolution of the lidar
	const float RESO_ARRAY[RESO_NUM]={0.0075, 0.015}; // Lidar Resolution in meter

	const float SM=8.37758 ;         //Sm=moleculeExtinctionCoefficient/moleculeBackScatterCoefficient=SigmaM/BetaM=8*PI/3
	const float LAMBDA = 523.0 ;  //wave length of the lidar laser. 523nm as the old Lidar?
	const float RHO_N =0.0284 ;   //depolarization factor, actually 0.0284 is for 550nm. but I didn't find a preciser one...

	const int USEABLESTARTINDEX_7_5M=22; //Useable Data starts from which one?
	const int FIRSTDATAINDEX_7_5M=9;    //e.g. for 7.5m resolution, data[FIRSTDATAINDEX] means 3.75m height, etc
	const int USEABLESTARTINDEX_15M=12;
	const int FIRSTDATAINDEX_15M=4;     
	//FIRSTDATAINDEX should NEVER be greater than USEABLESTARTINDEX

//about the datafile format
	//index in the analogData[]. If the data format changes, just edit here and try if this program can still handle it...
	const int ENERGYINDEX=0;        
	const int TEMPDETECTORINDEX=1;
	const int TEMPBOXINDEX=2;
	const int TEMPLASERINDEX=3;
	const int DEADTIMECORRECTEDINDEX=4;
	const int BACKGROUNDINDEX=5;
	const int CLOUDBASEHEIGHTINDEX1=6;

	const string EXT="NP";              //the extension name of the data file.
	const int HEADSIZE=72;          //take care of the problem of memery alignment... see the "rubbish" in class OneLine
	const int MAXANALOGNUM=16;      //now the used number is 11, but who knows whether it will change
	const int MAXBINSNUM=8000;      //should be able to handle 7.5m/60km
	const int MAXCONTAINERSIZE=1000; //OK, better not do average over more than 2 hours

//some that may never been used..
	const int ATMOSMODELNUM_DEFAULT=6;     //1=Tropical atm, 2=midlatitude summer, 3=midlat winter, 4=subarctic summer, 5=subarc winter, 6&etc=1976 US, as in LOWTRAN but 999=new profile 
	const float SA_DEFAULT=25.0;			//usually this doesn't work because we are using the one from the "setting.ini" file
	const float LIDARCONST_DEFAULT=18.0;    //and this one either...
	const string INPUTDATAPATH_DEFAULT = ""; //and the following several defaults...
	const string OUTPUTDATAPATH_DEFAULT = "";

//some other options...
	const bool OUTPUTSIZE_IN_IMG_TXT= false; //if you decide to add a parametre in the output file, make it true
	const double PI=3.14159265;   
	const double C=2.99793e8;     //unit: m/s... seems never been used in this program...
	const float LOGLOWLIMIT=1e-10;    //to make log(somenumber) never fails: if somenumber < LOGLOWLIMIT, somenumber=LOGLOWLIMIT
	const int SUCCEED=1;
	const int FAILED=0;

	//Experimenting... not finished yet
	const float MAXPOSSIBLECLOUDHEIGHT=20.0;
	const float MAXPOSSIBLEMIXLAYERHEIGHT=3.0; 
//-----------------End Of Options-------------------

#endif